package com.liuxingwu.demo04;

import com.liuxingwu.demo02.UserService;
import com.liuxingwu.demo02.UserServiceImpl;

/**
 * @author 扫地生_LiuXingWu
 */
public class Client {
    public static void main(String[] args) {
        // 真实角色
        UserServiceImpl userService = new UserServiceImpl();
        // 代理角色：不存在，需要通过代理调用处理器动态生成
        // 1. 获取处理器
        ProxyInvocationHandler pih = new ProxyInvocationHandler();
        // 2. 设置需要代理的对象，传入的必须是接口的实现类
        pih.setTarget(userService);
        // 3. 动态生成代理类，生成的代理类必须是代理对象对应的接口
        UserService proxy = (UserService) pih.getProxy();
        // 4. 执行方法
        proxy.delete();
    }
}
